/**
 * Proxy中还有construct和apply，他们都是作用于函数对象
 */
function foo() {
  console.log('foo')
}

const fooProxy = new Proxy(foo, {
  //new操作符的捕捉器
  construct(target, argArray, newTarget) {
    console.log(target, argArray, newTarget)
    return new target()
  },
  //函数调用操作(使用apply)的捕捉器
  apply(target, thisArg, argArray) {
    return target.apply(thisArg, argArray)
  }
})

const f = new fooProxy()
fooProxy.apply({}, ['a', 'b'])
